package com.gf.user.dao;

import java.util.List;
import java.util.Map;

import com.gf.base.type.Activity;
import com.gf.base.type.BloodType;
import com.gf.base.type.LicenseState;
import com.gf.base.type.Sex;

public interface UserDao {

	/**
	 * 修改头像
	 * 
	 * @param protraitUrl
	 *            头像的相对地址
	 */
	public void updateProtrait(long id, String protraitUrl);

	/**
	 * 得到头像的地址
	 * 
	 * @param id
	 * @return
	 */
	public String queryProtrait(long id);

	/**
	 * 得到所有昵称: key->"nickname"<br>
	 * 和UID:key->"uid";
	 * 
	 * @return
	 */
	public List<Map<String, Object>> queryAllNicknameAndUidForAutocomplete();

	/**
	 * 
	 * @param userId
	 * @param sex
	 * @param bloodType
	 * @param income
	 * @param experience
	 * @return
	 */
	public boolean updateSetup(Long userId, Sex sex, BloodType bloodType,
			String income, String experience);

	/**
	 * 插入手机验证码
	 * 
	 * @param userId
	 * @param number
	 * @param code
	 * @return
	 */
	public long insertMobileCode(long userId, String number, String code);

	/**
	 * 查询验证码
	 * 
	 * @param userId
	 * @param code
	 */
	public Map<String, Object> queryMobileCode(long userId, String code);

	/**
	 * 更新手机验证码状态
	 * 
	 * @param id
	 */
	public void updateMobileActivity(long id, Activity activity);

	/**
	 * 更新用户的手机号码
	 * 
	 * @param userId
	 * @param mobile
	 */
	public void updateUserMobile(long userId, String mobile);

	/**
	 * 上传执照
	 * 
	 * @param userId
	 * @param newPath
	 */
	public void insertLicense(long userId, String newPath,
			LicenseState licenseState);

	/**
	 * 用户登入成功后，更新<br>
	 * 最近一次登入时间<br>
	 * 和IP地址
	 * 
	 * @param userId
	 */
	public void updateLoginUserInfo(long userId, String ip);
}
